// 版权所有2011 Go作者。保留所有权利。
// 此源代码的使用受BSD样式
// 许可证的约束，该许可证可以在许可证文件中找到。

package runtime

type sigTabT struct {
	flags int
	name  string
}

// 传入的注释使用strncmp与此表进行比较，因此
// 顺序问题：较长的模式必须出现在其前缀之前。
// os2_平面9中有_SIG常数。查找其中一些
// 的表索引。
// 
// 如果向该表添加条目，则必须遵守前缀顺序
// 并更新常量值为os2_plan9。去
var sigtable = [...]sigTabT{
	// 我们无法找回的陷阱。
	{_SigThrow, "sys: trap: debug exception"},
	{_SigThrow, "sys: trap: invalid opcode"},

	// 我们可以在运行时从一些内存错误中恢复。我们还可以从数学错误中恢复。

	{_SigPanic, "sys: trap: divide error"}, // SIGINTDIV 
	{_SigPanic, "sys: fp:"},                // SIGFLOAT 

	// 所有其他陷阱通常被当作标记为SIGTROW处理。
	// 我们在这里标记为sigmanic，以便调试。SetPanicOnFault将起作用。
	{_SigPanic, "sys: trap:"}, // SIGTRAP 

	// 如果需要，可以处理对封闭管道的写入，否则将忽略它们。
	{_SigNotify, "sys: write on closed pipe"},

	// 其他系统说明更严重，无法恢复。
	{_SigThrow, "sys:"},

	// 调用runtime·exit时，会将其发送给所有其他进程。
	{_SigGoExit, "go: exit "},

	// Kill由外部程序发送以导致退出。
	{_SigKill, "kill"},

	// 如果需要，可以处理中断，否则会导致退出。
	{_SigNotify + _SigKill, "interrupt"},
	{_SigNotify + _SigKill, "hangup"},

	// 如果需要，可以处理报警，否则将忽略报警。
	{_SigNotify, "alarm"},

	// 如果需要，可以处理中止，否则会导致堆栈跟踪。
	{_SigNotify + _SigThrow, "abort"},
}
